package com.ruoyi.teaching.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 教务班级对象 teaching_classes
 *
 * @author ruoyi
 * @date 2022-10-12
 */
public class TeachingClasses extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long classId;

    /**
     * 班级名
     */
    @Excel(name = "班级名")
    private String className;

    /**
     * 老师用户ID
     */
    @Excel(name = "老师用户ID")
    private Long userId;

    /**
     * 学校ID
     */
    private Long schoolId;

    /**
     * 老师名称
     */
    @Excel(name = "老师名称")
    private String teacherName;

    /**
     * 课程ID
     */
    @Excel(name = "课程ID")
    private Long courseId;

    /**
     * 课程名称
     */
    @Excel(name = "课程名称")
    private String courseName;

    /**
     * 学校名称
     */
    @Excel(name = "学校名称")
    private String schoolName;

    /**
     * 在读人数
     */
    @Excel(name = "在读人数")
    private Long classStudent;

    /**
     * 满班人数
     */
    @Excel(name = "满班人数")
    private Long maxStudent;

    /**
     * 教室名称
     */
    @Excel(name = "教室名称")
    private String classroomName;

    /**
     * 需要章节的数量 默认3节
     */
    private Integer needFolderCount;

    /**
     * 当前教学目录
     */
    private Long currentFolderId;
    /**
     * 已教学目录列表
     */
    private String currentFolderAncestors;

    @Override
    public Long getSchoolId() {
        return schoolId;
    }

    @Override
    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }

    public Long getCurrentFolderId() {
        return currentFolderId;
    }

    public void setCurrentFolderId(Long currentFolderId) {
        this.currentFolderId = currentFolderId;
    }

    public String getCurrentFolderAncestors() {
        return currentFolderAncestors;
    }

    public void setCurrentFolderAncestors(String currentFolderAncestors) {
        this.currentFolderAncestors = currentFolderAncestors;
    }

    public Integer getNeedFolderCount() {
        return needFolderCount;
    }

    public void setNeedFolderCount(Integer needFolderCount) {
        this.needFolderCount = needFolderCount;
    }

    /**
     * 开班日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开班日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 结班日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结班日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 上课时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上课时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date teachTime;

    /**
     * 学生消耗课时
     */
    @Excel(name = "学生消耗课时")
    private Long studentConsume;

    /**
     * 老师获得课时
     */
    @Excel(name = "老师获得课时")
    private Long teacherIncrease;

    /**
     * 招生状态(0开班中 1满班停止 2停止)
     */
    @Excel(name = "招生状态(0开班中 1满班停止 2停止)")
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @Excel(name = "删除标志", readConverterExp = "0=代表存在,2=代表删除")
    private String delFrag;

    /**
     * 创建者ID
     */
    @Excel(name = "创建者ID")
    private Long createId;


    /**
     * 当前上课目录索引
     */
    private int currentFolderIndex;

    public int getCurrentFolderIndex() {
        return currentFolderIndex;
    }

    public void setCurrentFolderIndex(int currentFolderIndex) {
        this.currentFolderIndex = currentFolderIndex;
    }

    /**
     * 上课状态0 未上课 1 上课中
     */
    private String lessonStatus;

    public String getLessonStatus() {
        return lessonStatus;
    }

    public void setLessonStatus(String lessonStatus) {
        this.lessonStatus = lessonStatus;
    }

    /**
     * 学校对象
     *
     * @param classId
     */
    private TeachingSchool teachingSchool;

    public TeachingSchool getTeachingSchool() {
        return teachingSchool;
    }

    public void setTeachingSchool(TeachingSchool teachingSchool) {
        this.teachingSchool = teachingSchool;
    }

    public void setClassId(Long classId) {
        this.classId = classId;
    }

    public Long getClassId() {
        return classId;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getClassName() {
        return className;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setCourseId(Long courseId) {
        this.courseId = courseId;
    }

    public Long getCourseId() {
        return courseId;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public String getSchoolName() {
        return schoolName;
    }

    public void setClassStudent(Long classStudent) {
        this.classStudent = classStudent;
    }

    public Long getClassStudent() {
        return classStudent;
    }

    public void setMaxStudent(Long maxStudent) {
        this.maxStudent = maxStudent;
    }

    public Long getMaxStudent() {
        return maxStudent;
    }

    public void setClassroomName(String classroomName) {
        this.classroomName = classroomName;
    }

    public String getClassroomName() {
        return classroomName;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setTeachTime(Date teachTime) {
        this.teachTime = teachTime;
    }

    public Date getTeachTime() {
        return teachTime;
    }

    public void setStudentConsume(Long studentConsume) {
        this.studentConsume = studentConsume;
    }

    public Long getStudentConsume() {
        return studentConsume;
    }

    public void setTeacherIncrease(Long teacherIncrease) {
        this.teacherIncrease = teacherIncrease;
    }

    public Long getTeacherIncrease() {
        return teacherIncrease;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFrag(String delFrag) {
        this.delFrag = delFrag;
    }

    public String getDelFrag() {
        return delFrag;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public Long getCreateId() {
        return createId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("classId", getClassId())
                .append("className", getClassName())
                .append("userId", getUserId())
                .append("schoolId", getSchoolId())
                .append("teacherName", getTeacherName())
                .append("courseId", getCourseId())
                .append("courseName", getCourseName())
                .append("schoolId", getSchoolId())
                .append("schoolName", getSchoolName())
                .append("classStudent", getClassStudent())
                .append("maxStudent", getMaxStudent())
                .append("classroomName", getClassroomName())
                .append("startDate", getStartDate())
                .append("endDate", getEndDate())
                .append("teachTime", getTeachTime())
                .append("studentConsume", getStudentConsume())
                .append("teacherIncrease", getTeacherIncrease())
                .append("status", getStatus())
                .append("delFrag", getDelFrag())
                .append("createId", getCreateId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("teachingSchool", getTeachingSchool())
                .toString();
    }
}
